<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
            "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>



<META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<META name="GENERATOR" content="hevea 1.08">
<LINK rel="stylesheet" type="text/css" href="embroot.css">
<TITLE>
Introduction
</TITLE>
</HEAD>
<BODY >
<A HREF="embroot052.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="embroot054.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
<HR>

<H2 CLASS="section"><A NAME="htoc106">10.1</A>&nbsp;&nbsp;Introduction</H2>
The ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> remote interface protocol is used to build a remote
interface between ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> and some programming language. A program
written in that programming language can interact and communicate with a
separate ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> process via the remote interface. The Tcl remote
interface (chapter&nbsp;<A HREF="embroot026.html#chapremote">6</A>) is an example of such an
interface. This chapter describes the protocol, so that remote interfaces
to other programming languages can be built.<BR>
<BR>
The protocol is designed to allow the implementer to build an interface
that is compatible with the embedding interface of the same language. This
should allow the same code (in both ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> and the other language) to
be used in both interfaces. On the ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> side, the concept of <I>peers</I> is used to unify the remote and embedding interfaces. <BR>
<BR>
Another feature of the remote interface is that on the ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> side,
the interface is independent of the programming language that is being
interfaced to. It should be possible to write ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> code with the
interface (e.g. for a GUI) and change the remote code without needing to
rewrite the code on the ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> side.<BR>
<BR>
Briefly, a socket connection is established between the remote program and
an ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> process. The processes exchange messages in the EXDR (see
chapter&nbsp;<A HREF="embroot049.html#chapexdr">9</A>) format according to the protocol. This allows the
communication to be platform independent, and the ECL<SUP><I>i</I></SUP>PS<SUP><I>e</I></SUP> and remote
processes can be located on any two machines which can establish socket
connections. <BR>
<BR>
<HR>
<A HREF="embroot052.html"><IMG SRC ="contents_motif.gif" ALT="Up"></A>
<A HREF="embroot054.html"><IMG SRC ="next_motif.gif" ALT="Next"></A>
</BODY>
</HTML>
